package algo3.modelo.armas;

import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;

import algo3.modelo.Posicion;

public class ReflexionDeArma {

    static public Arma obtenerArmaPorReflexion(String nombreArma,Posicion pos) {
			Arma  arma = new DisparoConvencional(pos);
		    Class claseDeArma;
			try {
				claseDeArma = Class.forName("algo3.modelo.armas." + nombreArma);
			    Constructor constructor = claseDeArma.getConstructor(Posicion.class);
          		arma = (Arma) constructor.newInstance (pos);
				}
				catch (NoSuchMethodException e1) {
				e1.printStackTrace();} 
			    catch (SecurityException e1) {
				e1.printStackTrace();}
			    catch (ClassNotFoundException e2) {
				e2.printStackTrace();}
				catch (InstantiationException e) {
				e.printStackTrace();}
			    catch (IllegalAccessException e) {
				e.printStackTrace();}
			    catch (IllegalArgumentException e) {
				e.printStackTrace();} 
			    catch (InvocationTargetException e) {
				e.printStackTrace();}
			
	        return arma;
	}
}